<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据类型</title>
    <script>
        /*
        数据类型指的是字面量的类型
        JS中有六种数据类型
        string 字符串              number 数值         boolean  布尔值
        null 空值                undefined未定义        Object对象
         */


        //字符串
        //在字符串中可以使用\作为转移字符，   \"表示一个双引号     \n 换行  \t  制表符  \\ 表示一个\
        var str="我说：\"今天天气真不错\"";
        console.log(str);
        //number
        //在JS中所有的数值都是Number类型 包括整数和浮点数
        //可以使用一个运算符 typeof  来检查一个变量的类型     检查字符串返回 string  检查数值返回number
        //如果使用Number表示的数字超过了最大值，则会返回一个  Infinity
        //NaN 是一个特殊的数字，表示 Not A number 使用typeof 检查一个NaN也会返回 number
        //不要用JS算浮点数，不精确

        //boolean    主要用于逻辑判断，  true表示真， false 表示假
        //Null 用来表示一个空的对象，使用typeof检查时，会返回object
        //Undefined 类型只有一个，就是Undefined   表示声明了一个变量，但是没有赋值
        /*
                                        强制类型转换
                             指将一个数据类型强制转换为其他的数据类型
         */
                                 // 将其他数据类型转换为String：
        //一、掉用被转换数据类型的toString（）方法
        //null和undefined无法使用toString方法
        var a= 123;
        var b=a.toString();
        console.log(typeof b);
        //二、掉用String（）函数,并将被转换的数据作为参数传递给函数
        //1.对于 number boolean实际上就是掉用的toString（）方法
        //2.对于null 直接转换为“null”   对于undefined转换为“undefined”
        var c=123;
        c=String(c);
       console.log(c);
                               //将其他数据类型转换为number
        //方法一 使用Number函数
        /*1.字符串转换number，如果是纯数字的字符串，直接转换为数字
             如果字符串中有非数字内容，则转换成NaN
             如果字符串为空，则转换成0*/
        //2.boolean值转换number，true=1 false=0；
        //3.null转换成number  null=0     undefined=NaN
        var d="456";
        d=Number(d);
        console.log(d);
        //方法二   主要针对字符串  ParseInt()  Parsefloat()
        //对于非string使用parseint ，会先将其转换为string，然后再进行操作
        a="123px";
        a=parseInt(a);
        console.log(typeof a);
        console.log(a);
/*
                                进制转换
           在JS中，如果表示16进制的数字，则需要以0X开头
           如果表示八进制的数字，则需要以0o开头
           如果表示二进制的数字，则需要以0b开头
 */
   var x;
        //16进制
        // x=0xCafe;
        // 八进制
        // x=0o70;
        //二进制
        //x=0b11;
        x="070"
        x=parseInt(a);      //parseInt(变量,进制数); eg  parseInt(x,10);  将X转换为十进制number
        console.log(typeof x);
        console.log(x);     //  以十进制输出
        /*
                           转换为Boolean
         */
        //使用boolean()函数
        //数字转换boolean，  0和NaN为false     其余数字为true
        //字符串转换boolean， ""为flase，其余为true
        // Null和undefined转换boolean为 false
        //对象也会转换为true
   var y=123;
   y=Boolean(y);
   console.log(y);


    </script>
</head>
<body>

</body>
</html>